/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package simplemetrosystem.control.Calculation;

import simplemetrosystem.model.Element.*;
import java.util.ArrayList;

/**
 *
 * @author Eric Qian
 */
public class SuperStation {

    public SuperStation(MetroStation station) {
        this.station = station;
        edges = new ArrayList<SuperEdge>();
        distance = 999999;
        time = 999999;
        visited = false;
    }

    public MetroStation getStation() {
        return station;
    }

    public void addEdge(SuperEdge aEdge) {
        if (!edges.contains(aEdge)) {
            edges.add(aEdge);
        }
    }

    public SuperEdge getEdgeAt(int i) {
        return edges.get(i);
    }

    public int getEdgeSize() {
        return edges.size();
    }

    public void removeEdge(SuperEdge aEdge) {
        edges.remove(aEdge);
    }

    public void setDistance(double distance) {
        this.distance = distance;
    }

    public double getDistance() {
        return distance;
    }

    public double getTime() {
        return time;
    }

    public void setTime(double time) {
        this.time = time;
    }

    public boolean isVisited() {
        return visited;
    }

    public void setVisited(boolean visited) {
        this.visited = visited;
    }

    public SuperStation getFather() {
        return father;
    }

    public void setFather(SuperStation father) {
        this.father = father;
    }

    public SuperEdge getFatherEdge() {
        return fatherEdge;
    }

    public void setFatherEdge(SuperEdge fatherEdge) {
        this.fatherEdge = fatherEdge;
    }
    private MetroStation station;
    private SuperStation father;
    private SuperEdge fatherEdge;
    private ArrayList<SuperEdge> edges;
    private double distance;
    private double time;
    private boolean visited;
}
